// 这个文件用于注册所有 kernel 的 launcher
// 用户只需要使用 REG_KERNEL_LAUNCHER 宏即可

#ifndef KERNEL_LAUNCHERS_H
#define KERNEL_LAUNCHERS_H

#include "macros.h"

namespace TritonLauncher {
/* add_kernel */
#define ADD_KERNEL_ARG_LIST(OP) \
    OP(void*, arg0) \
    OP(void*, arg1) \
    OP(void*, arg2) \
    OP(int32_t, arg3)

REG_KERNEL_ARGS(add_kernel, ADD_KERNEL_ARG_LIST)
REG_KERNEL_LAUNCHER(add_kernel, ADD_KERNEL_ARG_LIST)
/* end of add_kernel */
}

#define FUSED_GDN_GATING_ARG_LIST(OP) \
    OP(void*, ALOG) \
    OP(void*, a) \
    OP(void*, b) \
    OP(void*, dt_bias) \
    OP(void*, g) \        
    OP(void*, beta_output) \ 
    OP(float, beta) \
    OP(float, threshold)

REG_KERNEL_ARGS(fused_gdn_gating_head8_kernel, FUSED_GDN_GATING_ARG_LIST)
REG_KERNEL_LAUNCHER(fused_gdn_gating_head8_kernel, FUSED_GDN_GATING_ARG_LIST)
#endif // KERNEL_LAUNCHERS_H

